package server.reflect;

/**
 * 反射：把java类中的各种结构（方法，属性，构造器，类名）映射成一个个的java对象
 * 1.获取class对象
 * 三种方式：Class.forName("包名.类名")
 * 2.可以动态创建
 */
public class Reflect {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
        //获取对象的三种方式
        //1.对象.getClass()
        Iphone iphone = new Iphone();
        Class clz = iphone.getClass();
        //2.类.class()
        clz = Iphone.class;
        //3.Class.forName("包名.类名")
        clz = Class.forName("server.reflect.Iphone");


        //创建对象
        Iphone iphone2 = (Iphone)clz.newInstance();
        System.out.println(iphone2);
    }
}
class Iphone{
    public Iphone(){

    }
}
